<?php
class Reset extends CI_Controller
{
		function __construct()
	{
		parent::__construct();
		$this->load->library('form_validation');
		$this->load->helper(array('url','form','security'));
	}
	
	
	function index()
	{
		$this->load->helper('string');
		$this->form_validation->set_rules('email','Email','required|valid_email|xss_clean()');
		
		if ($this->form_validation->run()==FALSE)
		{
			//Kod körs om det inte finns något att validera.
			$data['title']='Återställ lösenord';
			$this->load->view('global/view_master_header',$data);
			$this->load->view('user/view_user_reset');
			$this->load->view('global/view_master_footer');
			
		}
		else
		{
		 	$emailTo=$this->input->post('email');
			$this->load->model('User_model');
			
			//Kollar om email adressen finns i databasen.
			
			$userInfo=$this->User_model->checkIfEmailExists($emailTo);
			if($userInfo==TRUE)
			{
				//Kod som körs om emailen finns.
				$id=$userInfo->id;
				$userName=$userInfo->username;
				
				//genererar ett nytt lösenord för användaren. 
				//Funktionen CreatePassword() ligger i utökningen av helpern string. 
				$newPassword=CreatePassword();
				
				//Försöker uppdatera lösenordet i databasen.
				if($this->User_model->updatePassword($newPassword['hashPassword'],$id))
				{
					//Skapar och skickar ett mail till användaren med användarnamn och lösenord.
					$emailData=array('username'=>$userName,'password'=>$newPassword['password']);
					$emailConfig=array('newline'=>'\r\n','mailtype'=>'html');
					
					$this->load->library('email');
					$this->email->initialize($emailConfig);
					$this->email->from('info@studentbilar.com', 'Studentbilar.se');
					$this->email->to($emailTo); 
					
					$this->email->subject('Efterfrågad inloggningsinformation till Studentbilar');
					$this->email->message($this->load->view('email/view_email_reset',$emailData,TRUE));		
					$this->email->send();
					
					$this->session->set_flashdata('email_confirmation',TRUE);
					redirect('user/reset');
						
				}
				else
				{
					//Det gick inte att ändra lösenordet.
					$this->session->set_flashdata('database_error',TRUE);
					redirect('user/reset'); 
				}
			}
			else
			{
				//kod som körs om emailen inte finns registrerad i dtatabasen.
				$this->session->set_flashdata('reset_error',TRUE);
				redirect('user/reset');
			}
			
		}		
	}
	
	
	
}
?>